]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
workspaces-view: Simplify handling of removed workspaces
authorFlorian Müllner <fmuellner@gnome.org>
Wed, 1 Jun 2011 02:23:12 +0000 (04:23 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Fri, 3 Jun 2011 17:56:33 +0000 (19:56 +0200)
Workspaces used to contain the desktop background, so when a
workspace was removed, we animated its actor to an off-screen
position before destroying it. As the background has been
removed a while ago, we can destroy the actor directly.

https://bugzilla.gnome.org/show_bug.cgi?id=645031

js/ui/workspace.js
js/ui/workspacesView.js

index bcffa5c55fb6e096dfb846cce8668d8e41433ef5..1650e7fb659e06610843c6dc22dcd111de75c898 100644 (file)
@@ -641,16 +641,6 @@ Workspace.prototype = {
         return this._windows.length == 0;
     },
 
-    /**
-     * setReactive:
-     * @reactive: %true iff the workspace should be reactive
-     *
-     * Set the workspace (desktop) reactive
-     **/
-    setReactive: function(reactive) {
-        this.actor.reactive = reactive;
-    },
-
     // Only use this for n <= 20 say
     _factorial: function(n) {
         let result = 1;
index b25d638e265d13a2cd59aa26e5bc031fee4bd81f..05358a1a55b3cf5f8abe015b9cd9515ced730cc3 100644 (file)
@@ -51,7 +51,6 @@ WorkspacesView.prototype = {
         this._y = 0;
         this._workspaceRatioSpacing = 0;
         this._spacing = 0;
-        this._lostWorkspaces = [];
         this._animating = false; // tweening
         this._scrolling = false; // swipe-scrolling
         this._animatingScroll = false; // programatically updating the adjustment
@@ -224,27 +223,6 @@ WorkspacesView.prototype = {
                     this._updateVisibility();
             }
         }
-
-        for (let l = 0; l < this._lostWorkspaces.length; l++) {
-            let workspace = this._lostWorkspaces[l];
-
-            Tweener.removeTweens(workspace.actor);
-
-            workspace.actor.show();
-            workspace.hideWindowsOverlays();
-
-            if (showAnimation) {
-                Tweener.addTween(workspace.actor,
-                                 { y: workspace.x,
-                                   time: WORKSPACE_SWITCH_TIME,
-                                   transition: 'easeOutQuad',
-                                   onComplete: Lang.bind(this,
-                                                         this._cleanWorkspaces)
-                                 });
-            } else {
-                this._cleanWorkspaces();
-            }
-        }
     },
 
     _updateVisibility: function() {
@@ -265,17 +243,6 @@ WorkspacesView.prototype = {
         }
     },
 
-    _cleanWorkspaces: function() {
-        if (this._lostWorkspaces.length == 0)
-            return;
-
-        for (let l = 0; l < this._lostWorkspaces.length; l++)
-            this._lostWorkspaces[l].destroy();
-        this._lostWorkspaces = [];
-
-        this._updateWorkspaceActors(false);
-    },
-
     _updateScrollAdjustment: function(index, showAnimation) {
         if (this._scrolling)
             return;
@@ -298,12 +265,9 @@ WorkspacesView.prototype = {
         }
     },
 
-    updateWorkspaces: function(oldNumWorkspaces, newNumWorkspaces, lostWorkspaces) {
+    updateWorkspaces: function(oldNumWorkspaces, newNumWorkspaces) {
         let active = global.screen.get_active_workspace_index();
 
-        for (let l = 0; l < lostWorkspaces.length; l++)
-            lostWorkspaces[l].disconnectAll();
-
         Tweener.addTween(this._scrollAdjustment,
                          { upper: newNumWorkspaces,
                            time: WORKSPACE_SWITCH_TIME,
@@ -315,8 +279,6 @@ WorkspacesView.prototype = {
                 this.actor.add_actor(this._workspaces[w].actor);
 
             this._updateWorkspaceActors(false);
-        } else {
-            this._lostWorkspaces = lostWorkspaces;
         }
 
         this._scrollToActive(true);
@@ -846,17 +808,16 @@ WorkspacesDisplay.prototype = {
             lostWorkspaces = this._workspaces.splice(removedIndex,
                                                      removedNum);
 
-            // Don't let the user try to select this workspace as it's
-            // making its exit.
-            for (let l = 0; l < lostWorkspaces.length; l++)
-                lostWorkspaces[l].setReactive(false);
+            for (let l = 0; l < lostWorkspaces.length; l++) {
+                lostWorkspaces[l].disconnectAll();
+                lostWorkspaces[l].destroy();
+            }
 
             this._thumbnailsBox.removeThumbmails(removedIndex, removedNum);
         }
 
         this.workspacesView.updateWorkspaces(oldNumWorkspaces,
-                                             newNumWorkspaces,
-                                             lostWorkspaces);
+                                             newNumWorkspaces);
     },
 
     _updateZoom : function() {